﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;
using CapturarObjetos.Nucleo;
using CapturarObjetos.Objetos;


namespace CapturarObjetos.Nucleo
{
    public class Interface
    {
       
        Setas seta_esquerda;
        Setas seta_direita;
        Setas sair;
        Setas pauseButton;
        Setas waitImage;
        
        public  Interface(SpriteBatch spriteBatch, ContentManager Content)
        {
            seta_esquerda = new Setas(Content.Load<Texture2D>(@"setas\esquerda"), new Vector2((Game1.largura) - 325, Game1.altura - 175));
            seta_direita = new Setas(Content.Load<Texture2D>(@"setas\direita"), new Vector2((Game1.largura) - 175, Game1.altura - 175));
            sair = new Setas(Content.Load<Texture2D>(@"setas\Exit"), new Vector2(Game1.largura - 200, 0));
            pauseButton = new Setas(Content.Load<Texture2D>(@"setas\pauseButton"), new Vector2(Game1.largura - 200, 200));
            waitImage = new Setas(Content.Load<Texture2D>("images/pause"), new Vector2((Game1.largura / 2) - 250, (Game1.altura / 2) - 200));
        }

        public void Draw(Jogador jogador, SpriteBatch spriteBatch)
        {
            if (Game1.estadoAtual == Telas.Tela.JOGO || Game1.estadoAtual == Telas.Tela.PAUSA)
            {
                seta_esquerda.Draw(spriteBatch);
                seta_direita.Draw(spriteBatch);
                pauseButton.Draw(spriteBatch);
                sair.Draw(spriteBatch);
            }
           
            if (Game1.estadoAtual == Telas.Tela.PAUSA)
            {
                waitImage.Draw(spriteBatch);
            }
            else if (Game1.estadoAtual == Telas.Tela.GAME_OVER)
            {
                sair.Draw(spriteBatch);
            }
            
        }

        public void Update(GameTime gameTime,MouseState mouse_atual, MouseState mouse_anterior, KeyboardState teclado_atual, KeyboardState teclado_anterior, Jogador jogador)
        {
            if (Game1.estadoAtual == Telas.Tela.JOGO)
            {
                #region setasHUD
                
                if ((seta_direita.MouseOver(Game1.mouseColisao)) && jogador.PosicaoX <= 13.5)
                {
                    jogador.Update(gameTime, teclado_atual, teclado_anterior, false, true);
                }
                if ((seta_esquerda.MouseOver(Game1.mouseColisao)) && jogador.PosicaoX >= -13.5)
                {
                    jogador.Update(gameTime, teclado_atual, teclado_anterior, true, false);
                }
                

                if (mouse_atual != mouse_anterior)
                {
                    if (pauseButton.MouseOver(Game1.mouseColisao))
                    {
                        Game1.estadoAtual = Telas.Tela.PAUSA;
                    }
                    else if (sair.MouseOver(Game1.mouseColisao))
                    { 
                        Game1.exit(); 
                    }
                }

            }
            else if(Game1.estadoAtual == Telas.Tela.PAUSA)
            {

                if (mouse_atual != mouse_anterior)
                {
                    if (waitImage.MouseOver(Game1.mouseColisao))
                    {
                        Game1.estadoAtual = Telas.Tela.JOGO;
                    }
                    else if (sair.MouseOver(Game1.mouseColisao))
                    {
                        Game1.exit(); 
                    }
                }
            }
                #endregion

           
        }
    }
}
